using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ManaCrystalMgr")]
	public class ManaCrystalMgr : MonoBehaviour
	{
		[Attribute38("ManaCrystalMgr.LoadCrystalCallbackData")]
		public class LoadCrystalCallbackData : MonoClass
		{
			public bool m_isTempCrystal => method_2<bool>("m_isTempCrystal");

			public bool m_isTurnStart => method_2<bool>("m_isTurnStart");

			public bool IsTempCrystal => method_11<bool>("get_IsTempCrystal", Array.Empty<object>());

			public bool IsTurnStart => method_11<bool>("get_IsTurnStart", Array.Empty<object>());

			public LoadCrystalCallbackData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public LoadCrystalCallbackData(IntPtr address)
				: this(address, "LoadCrystalCallbackData")
			{
			}
		}

		public Material tempManaCrystalMaterial => method_3<Material>("tempManaCrystalMaterial");

		public Material tempManaCrystalProposedQuadMaterial => method_3<Material>("tempManaCrystalProposedQuadMaterial");

		public Texture redCrystalTexture => method_3<Texture>("redCrystalTexture");

		public ManaCrystalEventSpells m_eventSpells => method_3<ManaCrystalEventSpells>("m_eventSpells");

		public SlidingTray manaTrayPhone => method_3<SlidingTray>("manaTrayPhone");

		public Transform manaGemBone => method_3<Transform>("manaGemBone");

		public GameObject friendlyManaCounter => method_3<GameObject>("friendlyManaCounter");

		public static float ANIMATE_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "ManaCrystalMgr", "ANIMATE_TIME");

		public static float SECS_BETW_MANA_SPAWNS => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "ManaCrystalMgr", "SECS_BETW_MANA_SPAWNS");

		public static float SECS_BETW_MANA_READIES => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "ManaCrystalMgr", "SECS_BETW_MANA_READIES");

		public static float SECS_BETW_MANA_SPENDS => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "ManaCrystalMgr", "SECS_BETW_MANA_SPENDS");

		public static float GEM_FLIP_TEXT_FADE_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "ManaCrystalMgr", "GEM_FLIP_TEXT_FADE_TIME");

		public string GEM_FLIP_ANIM_NAME => method_4("GEM_FLIP_ANIM_NAME");

		public List<ManaCrystal> m_permanentCrystals => method_3<Class271<ManaCrystal>>("m_permanentCrystals")?.method_25();

		public List<ManaCrystal> m_temporaryCrystals => method_3<Class271<ManaCrystal>>("m_temporaryCrystals")?.method_25();

		public int m_proposedManaSourceEntID => method_2<int>("m_proposedManaSourceEntID");

		public int m_numCrystalsLoading => method_2<int>("m_numCrystalsLoading");

		public int m_numQueuedToSpawn => method_2<int>("m_numQueuedToSpawn");

		public int m_numQueuedToReady => method_2<int>("m_numQueuedToReady");

		public int m_numQueuedToSpend => method_2<int>("m_numQueuedToSpend");

		public int m_additionalOverloadedCrystalsOwedNextTurn => method_2<int>("m_additionalOverloadedCrystalsOwedNextTurn");

		public int m_additionalOverloadedCrystalsOwedThisTurn => method_2<int>("m_additionalOverloadedCrystalsOwedThisTurn");

		public bool m_overloadLocksAreShowing => method_2<bool>("m_overloadLocksAreShowing");

		public float m_manaCrystalWidth => method_2<float>("m_manaCrystalWidth");

		public GameObject m_friendlyManaGem => method_3<GameObject>("m_friendlyManaGem");

		public UberText m_friendlyManaText => method_3<UberText>("m_friendlyManaText");

		public Texture friendlyManaGemTexture => method_3<Texture>("friendlyManaGemTexture");

		public ManaCrystalMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ManaCrystalMgr(IntPtr address)
			: this(address, "ManaCrystalMgr")
		{
		}

		public static ManaCrystalMgr Get()
		{
			return MonoClass.smethod_15<ManaCrystalMgr>(TritonHs.MainAssemblyPath, "", "ManaCrystalMgr", "Get", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Start()
		{
			method_8("Start");
		}

		public Vector3 GetManaCrystalSpawnPosition()
		{
			return method_11<Vector3>("GetManaCrystalSpawnPosition", Array.Empty<object>());
		}

		public void AddManaCrystals(int numCrystals, bool isTurnStart)
		{
			method_8("AddManaCrystals", numCrystals, isTurnStart);
		}

		public void AddTempManaCrystals(int numCrystals)
		{
			method_8("AddTempManaCrystals", numCrystals);
		}

		public void DestroyManaCrystals(int numCrystals)
		{
			method_8("DestroyManaCrystals", numCrystals);
		}

		public void DestroyTempManaCrystals(int numCrystals)
		{
			method_8("DestroyTempManaCrystals", numCrystals);
		}

		public void UpdateSpentMana(int shownChangeAmount)
		{
			method_8("UpdateSpentMana", shownChangeAmount);
		}

		public void SpendManaCrystals(int numCrystals)
		{
			method_8("SpendManaCrystals", numCrystals);
		}

		public void ReadyManaCrystals(int numCrystals)
		{
			method_8("ReadyManaCrystals", numCrystals);
		}

		public int GetSpendableManaCrystals()
		{
			return method_11<int>("GetSpendableManaCrystals", Array.Empty<object>());
		}

		public void CancelAllProposedMana(Entity entity)
		{
			method_8("CancelAllProposedMana", entity);
		}

		public void ProposeManaCrystalUsage(Entity entity)
		{
			method_8("ProposeManaCrystalUsage", entity);
		}

		public void HandleSameTurnOverloadChanged(int crystalsChanged)
		{
			method_8("HandleSameTurnOverloadChanged", crystalsChanged);
		}

		public void MarkCrystalsOwedForOverload(int numCrystals)
		{
			method_8("MarkCrystalsOwedForOverload", numCrystals);
		}

		public void ReclaimCrystalsOwedForOverload(int numCrystals)
		{
			method_8("ReclaimCrystalsOwedForOverload", numCrystals);
		}

		public void UnlockCrystals(int numCrystals)
		{
			method_8("UnlockCrystals", numCrystals);
		}

		public void TurnCrystalsRed(int previous, int current)
		{
			method_8("TurnCrystalsRed", previous, current);
		}

		public void OnCurrentPlayerChanged()
		{
			method_8("OnCurrentPlayerChanged");
		}

		public bool ShouldShowOverloadTooltip()
		{
			return method_11<bool>("ShouldShowOverloadTooltip", Array.Empty<object>());
		}

		public void SetFriendlyManaGemTexture(Texture texture)
		{
			method_8("SetFriendlyManaGemTexture", texture);
		}

		public void SetFriendlyManaGemTint(Color tint)
		{
			method_8("SetFriendlyManaGemTint", tint);
		}

		public void ShowPhoneManaTray()
		{
			method_8("ShowPhoneManaTray");
		}

		public void HidePhoneManaTray()
		{
			method_8("HidePhoneManaTray");
		}

		public void UpdateLayout()
		{
			method_8("UpdateLayout");
		}

		public void LoadCrystalCallback(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("LoadCrystalCallback", assetRef, go, callbackData);
		}

		public float GetWidth()
		{
			return method_11<float>("GetWidth", Array.Empty<object>());
		}

		public void DestroyManaCrystal()
		{
			method_8("DestroyManaCrystal");
		}

		public void DestroyTempManaCrystal()
		{
			method_8("DestroyTempManaCrystal");
		}

		public void SpendManaCrystal()
		{
			method_8("SpendManaCrystal");
		}

		public void ReadyManaCrystal()
		{
			method_8("ReadyManaCrystal");
		}
	}
}
